home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
games
/
kids
/
fouryrs.zoo
/
tile2.lst
< prev
next >
Wrap
File List
|
1993-02-21
|
3KB
|
149 lines
' tile2
' Programmed by Seymour Shlien in GFA Basic 3.5
' 624 Courtenay Avenue
' Ottawa, Ontario
' Canada
' Feb 21 1993
rez%=XBIOS(4)
IF rez%<>0
ALERT 3," Please switch to | low resolution! ",1,"Oops",b%
STOP
ENDIF
DEFMOUSE 0
nx_grid%=24
ny_grid%=24
nx_space%=6
ny_space%=6
x_left%=10
x_right%=x_left%+nx_grid%*nx_space%
y_top%=48
y_bot%=y_top%+ny_grid%*ny_space%
col%=0
DIM deskcolors%(16)
@get_deskcolors
@initialize_lut
@instructions
@color_bar
@draw_grid
col%=1
REPEAT
IF MOUSEK<>0
IF MOUSEY>y_top% AND MOUSEX>x_left%
ix%=((MOUSEX-x_left%) DIV nx_space%)
iy%=((MOUSEY-y_top%) DIV ny_space%)
COLOR (col%)
IF ix%<nx_grid%
IF iy%<ny_grid%
PLOT ix%+x_right%+10,iy%+y_top%-10
ENDIF
ENDIF
ix%=ix%*nx_space%+x_left%
iy%=iy%*ny_space%+y_top%
@put_tiles(ix%,iy%,col%)
INC numpnts%
ELSE IF MOUSEX<180 AND MOUSEY<24
col%=MOUSEX/20+8*(MOUSEY DIV 16)
ELSE IF MOUSEX<230 AND MOUSEY<20
DEFFILL 0
PBOX x_left%,y_top%,x_right%,y_bot%
@draw_grid
PAUSE 10
ENDIF
IF (numpnts% MOD 50)=0
@make_lattice
ENDIF
ENDIF
UNTIL ((MOUSEK<>0) AND (MOUSEX>238) AND (MOUSEY<20))
@restore_deskcolors
> PROCEDURE initialize_lut
VSETCOLOR 0,14,14,14
VSETCOLOR 1,0,0,0
VSETCOLOR 2,14,0,0
VSETCOLOR 3,0,12,0
VSETCOLOR 4,0,0,14
VSETCOLOR 5,10,10,14
VSETCOLOR 6,10,10,0
VSETCOLOR 7,10,0,10
VSETCOLOR 8,0,10,10
VSETCOLOR 9,14,14,0
VSETCOLOR 10,14,0,14
VSETCOLOR 11,0,14,14
VSETCOLOR 12,8,8,8
VSETCOLOR 13,10,10,10
VSETCOLOR 14,14,10,10
VSETCOLOR 15,10,14,10
RETURN
> PROCEDURE make_lattice
LOCAL i%,j%
GET x_right%+10,y_top%-10,x_right%+nx_grid%+9,y_top%+ny_grid%-10,cell$
FOR i%=0 TO 4
FOR j%=0 TO 5
PUT x_right%+40+i%*nx_grid%,y_top%+j%*ny_grid%,cell$
NEXT j%
NEXT i%
RETURN
> PROCEDURE draw_grid
DEFFILL 0
PBOX 0,30,319,199
DEFFILL col%
PBOX x_right%+10,y_top%-10,x_right%+nx_grid%+10,y_top%+ny_grid%-10
PBOX x_left%,y_top%,x_left%+nx_space%*nx_grid%,y_top%+ny_space%*ny_grid%
COLOR 1
BOX x_left%-1,y_top%-1,x_left%+nx_space%*nx_grid%+1,y_top%+ny_space%*ny_grid%+1
BOX x_left%,y_top%,x_left%+nx_space%*nx_grid%,y_top%+ny_space%*ny_grid%
BOX x_right%+39,y_top%-1,x_right%+40+nx_grid%*5,y_top%+6*ny_grid%+1
numpnts%=0
RETURN
> PROCEDURE put_tiles(ix%,iy%,col%)
DEFFILL col%
IF ix%<x_right%
IF iy%<y_bot%
PBOX ix%,iy%,ix%+nx_space%-1,iy%+ny_space%-1
ENDIF
ENDIF
RETURN
> PROCEDURE color_bar
CLS
FOR i%=0 TO 15
DEFFILL i%
PBOX (i% MOD 8)*20,8*(i% DIV 8)+8,((i% MOD 8)+1)*20,8*(i% DIV 8)+16
NEXT i%
FOR i%=0 TO 15
BOX (i% MOD 8)*20,8*(i% DIV 8)+8,((i% MOD 8)+1)*20,8*(i% DIV 8)+16
NEXT i%
COLOR 1
BOX 0,8,20,16
DEFTEXT 1
BOX 182,8,238,20
TEXT 184,18,"CLEAR"
BOX 238,8,280,20
TEXT 240,18,"QUIT"
DEFFILL 0
PBOX 0,40,319,199
DEFMOUSE 0
RETURN
> PROCEDURE get_deskcolors
LOCAL i%
FOR i%=0 TO 15
deskcolors%(i%)=XBIOS(7,i%,-1)
NEXT i%
RETURN
> PROCEDURE restore_deskcolors
LOCAL i%
FOR i%=0 TO 15
SETCOLOR i%,deskcolors%(i%)
NEXT i%
RETURN
> PROCEDURE instructions
DEFTEXT 1
CLS
PRINT "Click on colour and"
PRINT "draw in left square"
PRINT "holding down the mouse"
PRINT "button."
PRINT
PRINT "Click any mouse button to continue"
REPEAT
UNTIL MOUSEK<>0
RETURN